import request from '../../utils/request';
import {defaultAvatarUrl} from '../../utils/constant';

// 获取应用实例
Page({
    data: {
        hasLogin: false,
        hasUserInfo: true,
        avatarUrl: defaultAvatarUrl,
        nickName: '',
        gender: 0
    },
    onLoad() {

    },

    /**
     * 登录
     */
    async onLogin() {
        // 既然跳到了登录页面  不用管本地是否有token了 上层肯定做了检查 比如：本地token被清除、或者token过期
        const { code } = await wx.login();
        const url = '/login';
        const { data } = await request({ method: "POST", url, data: { code } });
        wx.setStorageSync('token', data.token);
        this.setData({ hasLogin: true });

        // 用户信息 可以检查下， 如果没有  就同步下用户信息到本地
        const userInfo = wx.getStorageSync('userInfo');
        if (!userInfo) {
            this.syncUserInfo();
        }
    },

    /**
     * 同步用户信息 到全局（本地存储）
     * 思路：先去服务端获取，若存在 取出来放入全局
     * 若是没有的话就去让用户填写，保存到服务器，然后再放入全局
     */
    async syncUserInfo() {
        const url = '/user';
        const { data } = await request({ url, method: "POST" });
        if (!data.data) {
            this.setData({ hasUserInfo: false })
        } else {
            wx.setStorageSync('userInfo', JSON.stringify(data.data));
            this.setData({ hasUserInfo: true })
            wx.redirectTo({ url: '/pages/index/index' })
        }
    },

    onChooseAvatar(e: any) {
        const { avatarUrl } = e.detail
        this.setData({
            avatarUrl,
        })
    },

    inInputNickname(e: any) {
        console.log('inInputNickname', e.detail.value);
        
        this.setData({ nickName: e.detail.value })
    },

    async saveUserProfile() {
        const { avatarUrl, nickName, gender } = this.data;
        const url = '/saveUser';
        const { data } = await request({ url, method: "POST", data: { avatarUrl, nickName, gender } });
        wx.setStorageSync('userInfo', JSON.stringify(data.data));
        wx.redirectTo({ url: '/pages/index/index' });
        console.log('getUserProfile');
    },
})
